home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
t_os
/
dcmedit
/
src
/
dcmedit.bas
next >
Wrap
BASIC Source File
|
1993-11-30
|
19KB
|
476 lines
10000 '
10010 ' GUIマップエディタ For DARK CARMINE By EMERALD
10020 '
10030 ' DCMEDIT.BAS
10040 '
10050 *初期設定
10060 '
10070 CLOSE
10080 SCREEN@0
10090 SCREEN 1,0,1,1
10100 COLOR 7,0,7,0
10110 CLS
10120 CLEAR ,,,,,1024*300
10130 DEF FONT "システム 12ドット"
10140 FBAI=12/16
10150 ON ERROR GOTO *エラートラップ
10160 '
10170 PALETTE
10180 '
10190 DIM G%(32,32)
10200 DIM EUP%(100000)
10210 GRID_ST=12
10220 PLUS_X=128
10230 PLUS_Y=48
10240 BLOCK_KIND=1
10250 ENDLESS=0
10260 '
10270 SCREEN 1,1,2,1
10280 SYMBOL (50,50),"Now Setting........",FBAI,FBAI,%15
10290 SCREEN 1,0,2,1
10300 '
10310 LINE (0,0)-(639,479),PSET,%1,BF
10320 '
10330 GOSUB *グリッド作成
10340 '
10350 PAINT (0,0),%0,%8
10360 '
10370 GOSUB *ロゴ表示
10380 '
10390 GOSUB *マウス初期設定
10400 '
10410 GOSUB *コンフィグロード
10420 '
10430 GOSUB *パレットロード
10440 '
10450 SCREEN 1,1,2,1
10460 '
10470 GOSUB *パレットロード
10480 '
10490 CLS
10500 SCREEN 1,0,3,1
10510 GOTO *メインループ
10520 '
10530 ''''
10540 '
10550 *メインループ
10560 '
10570 WHILE ENDLESS=0
10580 IF MOUSE(0)=<PLUS_X OR PLUS_X+GRID_ST*33-GRID_ST=<MOUSE(0) OR MOUSE(1)=<PLUS_Y OR PLUS_Y+GRID_ST*33-GRID_ST=<MOUSE(1) THEN *WENDER
10590 IF MOUSE (2,0)=-1 THEN
10600 ZELDA_X=MOUSE(0):ZELDA_Y=MOUSE(1)
10610 '
10620 GOSUB *現在位置計算
10630 '
10640 G%(GX,GY) =BLOCK_KIND
10650 IF BLOCK_KIND=0 THEN
10660 PAINT (ZELDA_X,ZELDA_Y),%1,%8
10670 PAINT (ZELDA_X+1,ZELDA_Y+1),%1,%8
10680 ENDIF
10690 IF BLOCK_KIND=1 THEN
10700 PAINT (ZELDA_X,ZELDA_Y),%7,%8
10710 PAINT (ZELDA_X+1,ZELDA_Y+1),%7,%8
10720 ENDIF
10730 IF BLOCK_KIND=2 THEN
10740 PAINT (ZELDA_X,ZELDA_Y),%6,%8
10750 PAINT (ZELDA_X+1,ZELDA_Y+1),%6,%8
10760 ENDIF
10770 ENDIF
10780 IF MOUSE (2,1)=-1 THEN
10790 SCREEN 1,1,1,1
10800 CLS
10810 SCREEN 1,1,3,1
10820 '
10830 GOSUB *セレクタ
10840 '
10850 *ループA
10860 IF MOUSE(2,0)=-1 OR MOUSE(2,1)=-1 THEN *ループA
10870 ENDIF
10880 *WENDER
10890 WEND
10900 ''''
10910 '
10920 *セレクタ
10930 '
10940 IF MOUSE(1)<320 THEN
10950 DUMMY_X=MOUSE(0)-34
10960 DUMMY_Y=MOUSE(1)
10970 ENDIF
10980 IF MOUSE(1)>=320 THEN
10990 DUMMY_X=MOUSE(0)-34
11000 DUMMY_Y=MOUSE(1)-191
11010 ENDIF
11020 LINE (DUMMY_X,DUMMY_Y)-(DUMMY_X+68,DUMMY_Y+192),PSET,%2,BF,%3
11030 SYMBOL (DUMMY_X+10,DUMMY_Y+10),"空白",FBAI,FBAI,%15
11040 SYMBOL (DUMMY_X+10,DUMMY_Y+30),"壁",FBAI,FBAI,%15
11050 SYMBOL (DUMMY_X+10,DUMMY_Y+50),"扉",FBAI,FBAI,%15
11060 SYMBOL (DUMMY_X+10,DUMMY_Y+70),"全消去",FBAI,FBAI,%15
11070 SYMBOL (DUMMY_X+10,DUMMY_Y+90),"セーブ",FBAI,FBAI,%15
11080 SYMBOL (DUMMY_X+10,DUMMY_Y+110),"ロード",FBAI,FBAI,%15
11090 SYMBOL (DUMMY_X+10,DUMMY_Y+130),"TIFF",FBAI,FBAI,%15
11100 SYMBOL (DUMMY_X+10,DUMMY_Y+150),"EUP",FBAI,FBAI,%15
11110 SYMBOL (DUMMY_X+10,DUMMY_Y+170),"終了",FBAI,FBAI,%15
11120 IF BLOCK_KIND=0 THEN MOUSE 1,DUMMY_X+34,DUMMY_Y+16,1
11130 IF BLOCK_KIND=1 THEN MOUSE 1,DUMMY_X+34,DUMMY_Y+36,1
11140 IF BLOCK_KIND=2 THEN MOUSE 1,DUMMY_X+34,DUMMY_Y+56,1
11150 '
11160 GOTO *セレクタループ
11170 '
11180 *セレクタループ
11190 '
11200 WHILE ENDLESS=0
11210 IF MOUSE (2,0)=-1 THEN
11220 IF DUMMY_Y+10<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+29 THEN BLOCK_KIND=0:CLS
11230 IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49 THEN BLOCK_KIND=1:CLS
11240 IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69 THEN BLOCK_KIND=2:CLS
11250 IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89 THEN *全消去
11260 IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109 THEN *セーブ
11270 IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN *ロード
11280 IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN GOSUB *TIFF
11290 IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN GOSUB *EUP
11300 IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN END
11310 SCREEN 1,0,3,1:RETURN
11320 ENDIF
11330 IF MOUSE (2,1)=-1 THEN CLS:SCREEN 1,0,3,1:RETURN
11340 WEND
11350 ''''
11360 '
11370 *全消去
11380 '
11390 FOR LY=1 TO 32
11400 FOR LX=1 TO 32
11410 G%(LX,LY)=0
11420 NEXT LX
11430 NEXT LY
11440 '
11450 GOTO *再表示
11460 '
11470 RETURN
11480 ''''
11490 '
11500 *セーブ
11510 '
11520 DUMMY_X=DUMMY_X+20
11530 DUMMY_Y=DUMMY_Y+20
11540 LINE (DUMMY_X,DUMMY_Y)-(DUMMY_X+102,DUMMY_Y+232),PSET,%2,BF,%3
11550 SYMBOL (DUMMY_X+16,DUMMY_Y+10) ,"データセーブ",FBAI,FBAI,%15
11560 SYMBOL (DUMMY_X+10,DUMMY_Y+30) ,"001",FBAI,FBAI,%15
11570 SYMBOL (DUMMY_X+10,DUMMY_Y+50) ,"002",FBAI,FBAI,%15
11580 SYMBOL (DUMMY_X+10,DUMMY_Y+70) ,"003",FBAI,FBAI,%15
11590 SYMBOL (DUMMY_X+10,DUMMY_Y+90) ,"004",FBAI,FBAI,%15
11600 SYMBOL (DUMMY_X+10,DUMMY_Y+110),"005",FBAI,FBAI,%15
11610 SYMBOL (DUMMY_X+10,DUMMY_Y+130),"006",FBAI,FBAI,%15
11620 SYMBOL (DUMMY_X+10,DUMMY_Y+150),"007",FBAI,FBAI,%15
11630 SYMBOL (DUMMY_X+10,DUMMY_Y+170),"008",FBAI,FBAI,%15
11640 SYMBOL (DUMMY_X+10,DUMMY_Y+190),"009",FBAI,FBAI,%15
11650 SYMBOL (DUMMY_X+10,DUMMY_Y+210),"010",FBAI,FBAI,%15
11660 SYMBOL (DUMMY_X+56,DUMMY_Y+30) ,"011",FBAI,FBAI,%15
11670 SYMBOL (DUMMY_X+56,DUMMY_Y+50) ,"012",FBAI,FBAI,%15
11680 SYMBOL (DUMMY_X+56,DUMMY_Y+70) ,"013",FBAI,FBAI,%15
11690 SYMBOL (DUMMY_X+56,DUMMY_Y+90) ,"014",FBAI,FBAI,%15
11700 SYMBOL (DUMMY_X+56,DUMMY_Y+110),"015",FBAI,FBAI,%15
11710 SYMBOL (DUMMY_X+56,DUMMY_Y+130),"016",FBAI,FBAI,%15
11720 SYMBOL (DUMMY_X+56,DUMMY_Y+150),"017",FBAI,FBAI,%15
11730 SYMBOL (DUMMY_X+56,DUMMY_Y+170),"018",FBAI,FBAI,%15
11740 SYMBOL (DUMMY_X+56,DUMMY_Y+190),"019",FBAI,FBAI,%15
11750 SYMBOL (DUMMY_X+56,DUMMY_Y+210),"020",FBAI,FBAI,%15
11760 '
11770 GOTO *セーブループ
11780 '
11790 *セーブループ
11800 '
11810 WHILE ENDLESS=0
11820 IF MOUSE(2,0)=-1 THEN
11830 IF DUMMY_X+10<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+46 THEN
11840 IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49 THEN SAVE_NO$="1.DAT"
11850 IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69 THEN SAVE_NO$="2.DAT"
11860 IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89 THEN SAVE_NO$="3.DAT"
11870 IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109 THEN SAVE_NO$="4.DAT"
11880 IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN SAVE_NO$="5.DAT"
11890 IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN SAVE_NO$="6.DAT"
11900 IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN SAVE_NO$="7.DAT"
11910 IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN SAVE_NO$="8.DAT"
11920 IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN SAVE_NO$="9.DAT"
11930 IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN SAVE_NO$="10.DAT"
11940 '
11950 GOTO *セーブ実働
11960 ENDIF
11970 IF DUMMY_X+56<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+92 THEN
11980 IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49 THEN SAVE_NO$="11.DAT"
11990 IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69 THEN SAVE_NO$="12.DAT"
12000 IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89 THEN SAVE_NO$="13.DAT"
12010 IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109 THEN SAVE_NO$="14.DAT"
12020 IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN SAVE_NO$="15.DAT"
12030 IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN SAVE_NO$="16.DAT"
12040 IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN SAVE_NO$="17.DAT"
12050 IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN SAVE_NO$="18.DAT"
12060 IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN SAVE_NO$="19.DAT"
12070 IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN SAVE_NO$="20.DAT"
12080 '
12090 GOTO *セーブ実働
12100 ENDIF
12110 ENDIF
12120 IF MOUSE(2,1)=-1 THEN CLS:SCREEN 1,0,3,1:RETURN
12130 WEND
12140 '
12150 *セーブ実働
12160 '
12170 SAVE@ "DCMDATA\DCM"+SAVE_NO$,G%
12180 '
12190 CLS:SCREEN 1,0,3,1:RETURN
12200 ''''
12210 '
12220 *ロード
12230 '
12240 DUMMY_X=DUMMY_X+20
12250 DUMMY_Y=DUMMY_Y+20
12260 LINE (DUMMY_X,DUMMY_Y)-(DUMMY_X+102,DUMMY_Y+232),PSET,%2,BF,%3
12270 SYMBOL (DUMMY_X+16,DUMMY_Y+10) ,"データロード",FBAI,FBAI,%15
12280 SYMBOL (DUMMY_X+10,DUMMY_Y+30) ,"001",FBAI,FBAI,%15
12290 SYMBOL (DUMMY_X+10,DUMMY_Y+50) ,"002",FBAI,FBAI,%15
12300 SYMBOL (DUMMY_X+10,DUMMY_Y+70) ,"003",FBAI,FBAI,%15
12310 SYMBOL (DUMMY_X+10,DUMMY_Y+90) ,"004",FBAI,FBAI,%15
12320 SYMBOL (DUMMY_X+10,DUMMY_Y+110),"005",FBAI,FBAI,%15
12330 SYMBOL (DUMMY_X+10,DUMMY_Y+130),"006",FBAI,FBAI,%15
12340 SYMBOL (DUMMY_X+10,DUMMY_Y+150),"007",FBAI,FBAI,%15
12350 SYMBOL (DUMMY_X+10,DUMMY_Y+170),"008",FBAI,FBAI,%15
12360 SYMBOL (DUMMY_X+10,DUMMY_Y+190),"009",FBAI,FBAI,%15
12370 SYMBOL (DUMMY_X+10,DUMMY_Y+210),"010",FBAI,FBAI,%15
12380 SYMBOL (DUMMY_X+56,DUMMY_Y+30) ,"011",FBAI,FBAI,%15
12390 SYMBOL (DUMMY_X+56,DUMMY_Y+50) ,"012",FBAI,FBAI,%15
12400 SYMBOL (DUMMY_X+56,DUMMY_Y+70) ,"013",FBAI,FBAI,%15
12410 SYMBOL (DUMMY_X+56,DUMMY_Y+90) ,"014",FBAI,FBAI,%15
12420 SYMBOL (DUMMY_X+56,DUMMY_Y+110),"015",FBAI,FBAI,%15
12430 SYMBOL (DUMMY_X+56,DUMMY_Y+130),"016",FBAI,FBAI,%15
12440 SYMBOL (DUMMY_X+56,DUMMY_Y+150),"017",FBAI,FBAI,%15
12450 SYMBOL (DUMMY_X+56,DUMMY_Y+170),"018",FBAI,FBAI,%15
12460 SYMBOL (DUMMY_X+56,DUMMY_Y+190),"019",FBAI,FBAI,%15
12470 SYMBOL (DUMMY_X+56,DUMMY_Y+210),"020",FBAI,FBAI,%15
12480 '
12490 GOTO *ロードループ
12500 '
12510 *ロードループ
12520 '
12530 WHILE ENDLESS=0
12540 IF MOUSE(2,0)=-1 THEN
12550 IF DUMMY_X+10<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+46 THEN
12560 IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49 THEN LOAD_NO$="1"
12570 IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69 THEN LOAD_NO$="2"
12580 IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89 THEN LOAD_NO$="3"
12590 IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109 THEN LOAD_NO$="4"
12600 IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN LOAD_NO$="5"
12610 IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN LOAD_NO$="6"
12620 IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN LOAD_NO$="7"
12630 IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN LOAD_NO$="8"
12640 IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN LOAD_NO$="9"
12650 IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN LOAD_NO$="10"
12660 '
12670 GOTO *ロード実働
12680 ENDIF
12690 IF DUMMY_X+56<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+92 THEN
12700 IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49 THEN LOAD_NO$="11"
12710 IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69 THEN LOAD_NO$="12"
12720 IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89 THEN LOAD_NO$="13"
12730 IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109 THEN LOAD_NO$="14"
12740 IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN LOAD_NO$="15"
12750 IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN LOAD_NO$="16"
12760 IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN LOAD_NO$="17"
12770 IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN LOAD_NO$="18"
12780 IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN LOAD_NO$="19"
12790 IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN LOAD_NO$="20"
12800 '
12810 GOTO *ロード実働
12820 ENDIF
12830 ENDIF
12840 IF MOUSE(2,1)=-1 THEN CLS:SCREEN 1,0,3,1:RETURN
12850 WEND
12860 '
12870 *ロード実働
12880 '
12890 LOAD@ "DCMDATA\DCM"+LOAD_NO$+".DAT",G%
12900 '
12910 GOTO *再表示
12920 ''''
12930 '
12940 *TIFF
12950 '
12960 DUMMY_X=DUMMY_X+20
12970 DUMMY_Y=DUMMY_Y+20
12980 LINE (DUMMY_X,DUMMY_Y)-(DUMMY_X+102,DUMMY_Y+232),PSET,%2,BF,%3
12990 SYMBOL (DUMMY_X+10,DUMMY_Y+10) ,"TIFFセーブ",FBAI,FBAI,%15
13000 SYMBOL (DUMMY_X+10,DUMMY_Y+30) ,"001",FBAI,FBAI,%15
13010 SYMBOL (DUMMY_X+10,DUMMY_Y+50) ,"002",FBAI,FBAI,%15
13020 SYMBOL (DUMMY_X+10,DUMMY_Y+70) ,"003",FBAI,FBAI,%15
13030 SYMBOL (DUMMY_X+10,DUMMY_Y+90) ,"004",FBAI,FBAI,%15
13040 SYMBOL (DUMMY_X+10,DUMMY_Y+110),"005",FBAI,FBAI,%15
13050 SYMBOL (DUMMY_X+10,DUMMY_Y+130),"006",FBAI,FBAI,%15
13060 SYMBOL (DUMMY_X+10,DUMMY_Y+150),"007",FBAI,FBAI,%15
13070 SYMBOL (DUMMY_X+10,DUMMY_Y+170),"008",FBAI,FBAI,%15
13080 SYMBOL (DUMMY_X+10,DUMMY_Y+190),"009",FBAI,FBAI,%15
13090 SYMBOL (DUMMY_X+10,DUMMY_Y+210),"010",FBAI,FBAI,%15
13100 SYMBOL (DUMMY_X+56,DUMMY_Y+30) ,"011",FBAI,FBAI,%15
13110 SYMBOL (DUMMY_X+56,DUMMY_Y+50) ,"012",FBAI,FBAI,%15
13120 SYMBOL (DUMMY_X+56,DUMMY_Y+70) ,"013",FBAI,FBAI,%15
13130 SYMBOL (DUMMY_X+56,DUMMY_Y+90) ,"014",FBAI,FBAI,%15
13140 SYMBOL (DUMMY_X+56,DUMMY_Y+110),"015",FBAI,FBAI,%15
13150 SYMBOL (DUMMY_X+56,DUMMY_Y+130),"016",FBAI,FBAI,%15
13160 SYMBOL (DUMMY_X+56,DUMMY_Y+150),"017",FBAI,FBAI,%15
13170 SYMBOL (DUMMY_X+56,DUMMY_Y+170),"018",FBAI,FBAI,%15
13180 SYMBOL (DUMMY_X+56,DUMMY_Y+190),"019",FBAI,FBAI,%15
13190 SYMBOL (DUMMY_X+56,DUMMY_Y+210),"020",FBAI,FBAI,%15
13200 '
13210 GOTO *TIFFループ
13220 '
13230 *TIFFループ
13240 '
13250 WHILE ENDLESS=0
13260 IF MOUSE(2,0)=-1 THEN
13270 IF DUMMY_X+10<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+46 THEN
13280 IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49 THEN TIFF_NO$="1.TIF"
13290 IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69 THEN TIFF_NO$="2.TIF"
13300 IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89 THEN TIFF_NO$="3.TIF"
13310 IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109 THEN TIFF_NO$="4.TIF"
13320 IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN TIFF_NO$="5.TIF"
13330 IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN TIFF_NO$="6.TIF"
13340 IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN TIFF_NO$="7.TIF"
13350 IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN TIFF_NO$="8.TIF"
13360 IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN TIFF_NO$="9.TIF"
13370 IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN TIFF_NO$="10.TIF"
13380 '
13390 GOTO *TIFF実働
13400 ENDIF
13410 IF DUMMY_X+56<=MOUSE(0) AND MOUSE(0)<=DUMMY_X+92 THEN
13420 IF DUMMY_Y+30<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+49 THEN TIFF_NO$="11.TIF"
13430 IF DUMMY_Y+50<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+69 THEN TIFF_NO$="12.TIF"
13440 IF DUMMY_Y+70<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+89 THEN TIFF_NO$="13.TIF"
13450 IF DUMMY_Y+90<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+109 THEN TIFF_NO$="14.TIF"
13460 IF DUMMY_Y+110<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+129 THEN TIFF_NO$="15.TIF"
13470 IF DUMMY_Y+130<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+149 THEN TIFF_NO$="16.TIF"
13480 IF DUMMY_Y+150<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+169 THEN TIFF_NO$="17.TIF"
13490 IF DUMMY_Y+170<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+189 THEN TIFF_NO$="18.TIF"
13500 IF DUMMY_Y+190<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+209 THEN TIFF_NO$="19.TIF"
13510 IF DUMMY_Y+210<=MOUSE(1) AND MOUSE(1)<=DUMMY_Y+229 THEN TIFF_NO$="20.TIF"
13520 '
13530 GOTO *TIFF実働
13540 ENDIF
13550 ENDIF
13560 IF MOUSE(2,1)=-1 THEN CLS:SCREEN 1,0,3,1:RETURN
13570 WEND
13580 '
13590 *TIFF実働
13600 '
13610 SCREEN 1,0,3,1
13620 SAVE_NO$=TIFF_NO$
13630 SAVE@ "DCMDATA\DCM"+TIFF_NO$,(0,0)-(639,479),1
13640 SCREEN 1,1,3,1
13650 '
13660 CLS:SCREEN 1,0,3,1:RETURN
13670 ''''
13680 '
13690 *EUP
13700 '
13710 LOAD@ EUP_NAME$,EUP%
13720 IF PLAY(0)=-1 THEN PLAY OFF ELSE PLAY@ EUP%,1
13730 '
13740 CLS:SCREEN 1,0,3,1:RETURN
13750 ''''
13760 '
13770 *エラートラップ
13780 '
13790 IF ERR=64 THEN KILL "DCMDATA\DCM"+SAVE_NO$:RESUME
13800 IF ERR=63 THEN RESUME NEXT
13810 ''''
13820 '
13830 *マウス初期設定
13840 '
13850 MOUSE_AND$=CHR$(&H7F,&HFF,&H3F,&HFF,&H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H03,&HFF,&H01,&HFF,&H00,&HFF,&H00,&H7F,&H00,&H3F,&H01,&HFF,&H10,&HFF,&H30,&HFF,&HF8,&HFF,&HF8,&HFF,&HFF,&HFF)
13860 MOUSE_DOT$=CHR$(&H00,&H00,&H00,&H00,&H40,&H00,&H60,&H00,&H30,&H00,&H58,&H00,&H2C,&H00,&H5E,&H00,&H2F,&H00,&H7C,&H00,&H64,&H00,&H04,&H00,&H02,&H00,&H02,&H00,&H00,&H00,&H00,&H00)
13870 '
13880 ' マウス初期設定
13890 '
13900 MOUSE 0,1
13910 MOUSE 2,MOUSE_AND$,MOUSE_DOT$
13920 MOUSE 4,PLUS_X+1,PLUS_Y+1,PLUS_X+32*GRID_ST-2,PLUS_Y+32*GRID_ST-2
13930 MOUSE 1,0,0,1
13940 RETURN
13950 ''''
13960 '
13970 *現在位置計算
13980 '
13990 GX =FIX((ZELDA_X-PLUS_X+GRID_ST)/GRID_ST)
14000 GY =FIX((ZELDA_Y-PLUS_Y+GRID_ST)/GRID_ST)
14010 GX2=FIX((ZELDA_X+1-PLUS_X+GRID_ST)/GRID_ST)
14020 GY2=FIX((ZELDA_Y+1-PLUS_Y+GRID_ST)/GRID_ST)
14030 RETURN
14040 ''''
14050 '
14060 *グリッド作成
14070 '
14080 '
14090 ' 縦線
14100 '
14110 FOR ZX=1 TO 33
14120 LINE (GRID_ST*ZX+PLUS_X-GRID_ST,1*GRID_ST+PLUS_Y-GRID_ST)-(GRID_ST*ZX+PLUS_X-GRID_ST,33*GRID_ST+PLUS_Y-GRID_ST),PSET,%8
14130 NEXT ZX
14140 '
14150 ' 横線
14160 '
14170 FOR ZY=1 TO 33
14180 LINE (1*GRID_ST+PLUS_X-GRID_ST,GRID_ST*ZY+PLUS_Y-GRID_ST)-(33*GRID_ST+PLUS_X-GRID_ST,GRID_ST*ZY+PLUS_Y-GRID_ST),PSET,%8
14190 NEXT ZY
14200 '
14210 RETURN
14220 ''''
14230 '
14240 *再表示
14250 '
14260 CLS:SCREEN 1,0,3,1
14270 FOR LY=1 TO 32
14280 FOR LX=1 TO 32
14290 IF G%(LX,LY)=0 THEN
14300 PA_POINT_X=GRID_ST*LX+PLUS_X-GRID_ST+1
14310 PA_POINT_Y=GRID_ST*LY+PLUS_Y-GRID_ST+1
14320 PAINT (PA_POINT_X,PA_POINT_Y),%1,%8
14330 ENDIF
14340 IF G%(LX,LY)=1 THEN
14350 PA_POINT_X=GRID_ST*LX+PLUS_X-GRID_ST+1
14360 PA_POINT_Y=GRID_ST*LY+PLUS_Y-GRID_ST+1
14370 PAINT (PA_POINT_X,PA_POINT_Y),%7,%8
14380 ENDIF
14390 IF G%(LX,LY)=2 THEN
14400 PA_POINT_X=GRID_ST*LX+PLUS_X-GRID_ST+1
14410 PA_POINT_Y=GRID_ST*LY+PLUS_Y-GRID_ST+1
14420 PAINT (PA_POINT_X,PA_POINT_Y),%6,%8
14430 ENDIF
14440 NEXT LX
14450 NEXT LY
14460 '
14470 RETURN
14480 ''''
14490 '
14500 *コンフィグロード
14510 '
14520 OPEN "I",#1,"DCMEDIT.CFG"
14530 LINE INPUT #1,DUMMY$
14540 IF LEFT$(DUMMY$,3)="EUP" THEN EUP_NAME$=MID$(DUMMY$,5)
14550 CLOSE
14560 RETURN
14570 ''''
14580 '
14590 *パレットロード
14600 '
14610 OPEN "I",#1,"DCMEDIT.PAL"
14620 WHILE EOF(1)<>-1
14630 INPUT #1,PAL_NO,G,R,B
14640 PALETTE PAL_NO,[G,R,B]
14650 WEND
14660 CLOSE
14670 RETURN
14680 '
14690 *ロゴ表示
14700 '
14710 PALETTE 11,[0,255,255]
14720 SYMBOL (2,2),"DCMEdit v1.00b",12/16,12/16,%11
14730 SYMBOL (457,465),"1993 By EMERALD",12/16,12/16,%11
14740 RETURN